Various electronic devices such as cameras, mobile phones, and other devices are now widely used for capturing images and post-capture processing of the images. There are several image processing applications that operate on more than one input images and such applications require images to be aligned before further processing the input images. An example, among many examples of such applications, is high dynamic range (HDR), where several images with varying exposures are combined. Another example may be to combine two images, where one image is captured with flash and another image is captured without flash. Another example may be multi-image noise reduction where several noisy images are combined. Another example may be composite images, where images with moving objects are combined to generate artistic effects. Another example would be ‘remove’ application, where images with moving objects are combined to generate an output image without the moving objects. In the applications described herein, a number of requirements on the image alignment algorithm can be formulated. For example, it should be exposure invariant, lighting invariant, noise resistant and resistant to moving objects. Further, if the implementation is to be done on a portable device with reduced computing power, the implementation should also be very time-efficient.